Motion pictures on celluloid or magnetic storage media (e.g., VHS tapes) are subject to scratches, dust, speckling, and other sources of “noise.” Noise can also appear in motion pictures during transmission through a noisy channel and in general, sources of noise such as storage errors, transmission errors, and reproduction errors can all be treated as the effects of a noisy channel. During viewing of the motion pictures, the noise often appears as static or as superposed pixels of the wrong color, e.g., black or white specs. While motion pictures containing noise may still be viewable, it is desirable to rid the motion pictures of these artifacts in many applications and in particular in consumer products that transfer motion pictures from analog media to digital media such as DVDs.
The process for removing noise from data or a signal is generally referred to as denoising, and a number of denoising schemes and filters have been developed The goal of most denoising processes is to convert a noisy signal SN into a recovered signal SR that is “closer” to the original clean signal SC. Since the clean signal SC is unavailable during denoising, a denoising process may use a priori knowledge of characteristics of the clean signal SC and/or attempt to infer the characteristics of the clean signal SC from analysis of the noisy signal SN. A universal denoising process in general operates with little or no a priori knowledge of the characteristics of the clean signal SC.
Discrete Universal DEnoising, sometimes referred to herein as DUDE, is a type of universal denoising that can be applied to a noisy signal SN containing discrete symbols si from a known alphabet A={a1, a2, . . . an}. DUDE uses a context η(s) of each symbol s being denoised, where the context η(s) in general is a set of symbols that in some sense neighbor the symbol s. For example, a signal representing a grayscale image and containing symbols that are pixel values may have an alphabet that is the set of values from 0 to 255, and each symbol corresponding to a pixel away from the edge of an image may have a context defined to be the pixel values for the nearest pixels in the image.
DUDE generally includes a modeling scan and a denoising scan of the noisy signal SN. The modeling scan determines count vectors m(η) (or equivalent probability vectors) for respective contexts η. Each component m(η)[i] of a count vector m(η) indicates the number of times a corresponding symbol ai is found in context η in the noisy signal SN. Related count vectors q(η) containing counts of symbols in the clean signal SC that end up in neighborhoods η in the noisy signal SN indicate statistical characteristics of the clean signal SC. Lacking the clean signal SC, DUDE cannot directly determine the count vectors q(η), but DUDE can estimate count vectors q(η), for example, through matrix multiplication of measured count vector m(η) by the inverse of a channel matrix Π, e.g., q(η)≈Π−1m(η). The channel matrix Π can be determined or estimated based on knowledge of the source or type of targeted noise.
The denoising scan generates recovered signal SR by replacing each occurrence of a symbol aj found in context η in the noisy signal SN with a symbol ai that minimizes an estimate of the distortion that results from replacing symbol aj with symbol ai in the clean signal SC. (Symbols aj and ai may be equal, which is equivalent to leaving aj unchanged when found in context η.) Equation 1 indicates a distortion estimate D(aj,ai,η) suitable for the DUDE process. In Equation 1, vector λ(ai) is a column of a symbol transformation matrix Λ, and each component of vector λ(ai) indicates a measure of the distortion created in clean signal SC by replacing the symbol corresponding to that component with symbol ai. Vector π(aj) is a column of channel matrix Π and has components indicating the probability of the channel (i.e., the source of targeted noise) replacing a corresponding symbol with symbol aj, and the Schur product λ(ai)⊙π(aj) generates a vector having components equal to the products of corresponding components of vectors λ(ai) and π(aj).D(aj,ai,η)=qT(η)(λ(ai)⊙π(aj))≈mT(η)Π−1(λ(ai)⊙π(aj))  Equation 1:
Obtaining optimal performance from DUDE generally requires a signal of sufficient length (i.e., a sufficiently large data set) to provide good statistics in the determination of measured count vectors m(η). However, when the alphabet A is large and/or the number of symbols in each context η is large, for example, in grayscale or color images, the available data may be insufficient to provide reliable statistics for the measured count vectors m(η).